Математический анализ
Численное интегрирование
Основные определения
Неопределенный интеграл
Функция называется первообразной функции , если для любого выполняется равенство:
Например, первообразной функции является функция , т.к. .
Если функция является первообразной функции , то множество всех первообразных для задается формулой , где – произвольная постоянная.
Множество всех первообразных функций для называется неопределенным интегралом от функции :
Здесь называется подынтегральной функцией, – подынтегральным выражением, – переменной интегрирования.
Определенный интеграл
Пусть функция определена на отрезке .
-
Разобьем отрезок на частичных отрезков точками .
-
В каждом частичном отрезке выберем произвольную точку и вычислим значение
функции в ней . -
Составим сумму произведений значений функции на длину соответствующего частичного отрезка . Эта сумма называется интегральной суммой функции на отрезке :
- Найдем предел интегральных сумм, когда , а .
Предел интегральных сумм при называется определенным интегралом от функции на отрезке :
Числа и называются нижним и верхним пределами интегрирования, отрезок – отрезком интегрирования, – подынтегральной функцией, – подынтегральным выражением, – переменной интегрирования.
Геометрический смысл определенного интеграла: определенный интеграл от неотрицательной функции численно равен площади криволинейной трапеции, ограниченной сверху графиком функции , снизу – осью Ox, слева – прямой и справа – прямой .
Формула Ньютона–Лейбница: Если функция непрерывна на отрезке и – ее первообразная на , то
Эта формула устанавливает связь между определенным интегралом и первообразной от подынтегральной функции.
Методы численного интегрирования
При вычислении определенного интеграла отыскание первообразной от подынтегральной функции часто сопряжено с большими трудностями. Кроме того, не для всякой элементарной функции ее первообразная выражается через элементарные функции. Подынтегральная функция может быть задана таблично. Во всех этих случаях прибегают к формулам численного интегрирования. Для этого отрезок интегрирования разбивают на равных частей длиной . Величина называется шагом. Рассмотрим несколько простейших формул численного интегрирования.
Формула левых прямоугольников:
Формула правых прямоугольников:
Формула трапеций:
Формула Симпсона ():
Формулы левых и правых прямоугольников имеют первый порядок точности, формула трапеций – второй порядок точности, формула Симпсона – четвертый порядок точности.
Непосредственная реализация методов численного интегрирования в Engee
Пример. Найдем интеграл по формулам левых прямоугольников, правых прямоугольников и трапеций. Для этого разобьем отрезок интегрирования на частей. Тогда шаг интегрирования вычисляется по формуле: . Сначала введем исходные данные:
a = 0;
b = pi/2;
n = 1000;
h = (b - a) / n;
Вычислим интеграл по формуле левых прямоугольников. Здесь функция collect(a:h:(b-h)) создает вектор значений переменной x в пределах от a до b-h с шагом h. Функция sum(y) вычисляет сумму всех элементов вектора y.
x = collect(a:h:(b-h));
y = sin.(x);
int1 = h * sum(y)
Теперь вычислим интеграл по формуле правых прямоугольников:
x = collect((a+h):h:b);
y = sin.(x);
int2 = h * sum(y)
И, наконец, вычислим интеграл по формуле трапеций:
x = collect((a+h):h:(b-h));
y = sin.(x);
int3 = h * ((sin(a)+sin(b))/2 + sum(y))
✏️Задание 1
Найдите в Engee интеграл по формулам левых прямоугольников, правых прямоугольников и трапеций.
Решение
a = 1;
b = 2;
n = 1000;
h = (b - a) / n;
x = collect(a:h:(b-h));
y = exp.(-x.^2);
int1 = h * sum(y);
println("По формуле левых прямоугольников: ", int1);
x = collect((a+h):h:b);
y = exp.(-x.^2);
int2 = h * sum(y);
println("По формуле правых прямоугольников: ", int2);
x = collect((a+h):h:(b-h));
y = exp.(-x.^2);
int3 = h * ((exp(-a^2)+exp(-b^2))/2 + sum(y));
println("По формуле трапеций: ", int3);
Использование функций численного интегрирования в Engee
В библиотеке NumericalIntegration содержится функция NumericalIntegration.integrate, которая численно находит значение определенного интеграла . Ее аргументами являются вектор значений переменной интегрирования, вектор соответствующих значений подынтегральной функциии и численный метод интегрирования. Если метод не указан, то по умолчанию используется формула трапеций. Переменная интегрирования должна быть протабулирована в пределах от до с шагом следующим образом: x = collect(a:h:b).
Пример. Найдем интеграл с помощью функции NumericalIntegration.integrate, разбивая отрезок интегрирования на частей.
using NumericalIntegration;
a = 0;
b = pi/2;
n = 1000;
h = (b - a) / n;
x = collect(a:h:b);
y = sin.(x);
int1 = NumericalIntegration.integrate(x, y)
Мы видим, что результат с высокой точностью совпадает с результатом, полученным выше при непосредственном применении формулы трапеций.
Теперь найдем тот же интеграл по формуле Симпсона. Для этого в качестве третьего аргумента функции NumericalIntegration.integrate запишем SimpsonEven().
int2 = NumericalIntegration.integrate(x, y, SimpsonEven())
✏️Задание 2
Найдите в Engee интеграл с помощью функции NumericalIntegration.integrate по формулам трапеций и Симпсона.
Решение
using NumericalIntegration;
a = 1;
b = 3;
n = 1000;
h = (b - a) / n;
x = collect(a:h:b);
y = sqrt.(1 .+ x.^2)
int1 = NumericalIntegration.integrate(x, y);
println("По формуле трапеций: ", int1);
int2 = NumericalIntegration.integrate(x, y, SimpsonEven());
println("По формуле Симпсона: ", int2);